// pages/admin/books/books.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        books: [],
        loading: false
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        this.loadBooks();
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    },

    // 加载所有书籍
    async loadBooks() {
        this.setData({ loading: true });
        try {
            const cloud = getApp().globalData.cloud;
            const db = cloud.database();
            const { data } = await db.collection('books').get();
            this.setData({ books: data });
        } catch (err) {
            console.error('加载书籍失败：', err);
            wx.showToast({
                title: '加载失败',
                icon: 'error'
            });
        } finally {
            this.setData({ loading: false });
        }
    },

    // 跳转到编辑页面
    handleEdit(e) {
        const { id } = e.currentTarget.dataset;
        wx.navigateTo({
            url: `/pages/admin/bookEdit/bookEdit?id=${id}`
        });
    },

    // 删除书籍
    async handleDelete(e) {
        const { id } = e.currentTarget.dataset;
        
        try {
            const cloud = getApp().globalData.cloud;
            const db = cloud.database();

            // 确认删除对话框
            const { confirm } = await wx.showModal({
                title: '确认删除',
                content: '删除后将无法恢复，是否继续？',
                confirmText: '删除',
                confirmColor: '#ff0000'
            });

            if (!confirm) return;

            wx.showLoading({ title: '删除中...' });

            // 删除书籍
            await db.collection('books').doc(id).remove();

            // 删除相关的地址记录
            await db.collection('bookAddresses').where({
                bookId: id
            }).remove();

            wx.showToast({
                title: '删除成功',
                icon: 'success'
            });

            // 重新加载书籍列表
            this.loadBooks();

        } catch (err) {
            console.error('删除失败：', err);
            wx.showToast({
                title: '删除失败',
                icon: 'error'
            });
        } finally {
            wx.hideLoading();
        }
    },

    // 跳转到添加书籍页面
    handleAdd() {
        wx.navigateTo({
            url: '/pages/admin/bookEdit/bookEdit'
        });
    }
})